package info.motteke.mybws;

import java.util.List;

/**
 * excel定義の各要素を表すインターフェースです。
 * 
 * @author YWak
 */
public interface Node {

    /**
     * visitorに処理を委譲します。
     * 
     * @param visitor
     *            処理の実装
     */
    public void accept(NodeVisitor visitor);

    /**
     * 子要素を返します。
     * 
     * @return 子要素のリスト
     */
    public List<Node> children();

    /**
     * 子要素を追加します。
     * 
     * @param child
     *            子要素
     */
    public void addChild(Node child);

    /**
     * 親要素を取得します。
     * 
     * @return 親要素。なければnull。
     */
    public Node getParent();
}
